package watercups.watercups;
import java.util.ArrayList;
import watercups.operators.WaterCupOperators;
import watercups.states.WaterCupState;
import templates.Operator;
import templates.State;
import algorithms.*;
public class Main {

    public static void main(String[] args) {
        //Descrierea problemei
        
        //Definirea operatorilor
        ArrayList<Operator<WaterCupState>> waterCupOperators = WaterCupOperators.returnOperators();
        
        //Definirea starii initiale
        State<WaterCupState> waterCupInitialState=WaterCupState.initialState();
        
        //Definirea starilor finale
        ArrayList<State<WaterCupState>> waterCupFinalState=WaterCupState.finalState();
        
        //Definirea fisierului de log, care va descrie solutia
        String WaterCupDepth="WaterCupDepth.txt";
        
        //Definirea contextului de rezolvare si executia strategiei respective;
        Context<WaterCupState> w;
        w=new Context<WaterCupState> (new DepthStrategy<WaterCupState>());
        w.executeStrategy(waterCupInitialState, waterCupFinalState, waterCupOperators, WaterCupDepth);
        
    }

}